const Koa = require("koa")
const Router = require("koa-router")
// 服务端加载静态资源的中间件
const serve = require("koa-static")
// 让ctx下有render方法  渲染html
const view = require("koa-view")

const app = new Koa()
const router = new Router()

// 当前文件父级的绝对路径   __dirname

app.use(serve(__dirname + '/views'))
app.use(view(__dirname + '/views'))

router.get("/getList", async ctx => {
    ctx.body = "获取列表"
})

router.get("/getUserInfo", async ctx => {
    ctx.body = "获取用户信息"
})

router.get("/getGoods", async ctx => {
    ctx.body = "我是第三个接口"
})


// 封装请求日志中间件
app.use(async (ctx, next) => {
    const { method, url, header } = ctx
    const { host } = header
    console.log(`我本次的请求方式为${method}---请求地址为${host}${url}`)
    await next()
})

// 封装处理404状态中间件
app.use(async (ctx, next) => {
    // ctx.status  本次请求的状态码
    const { status } = ctx
    // console.log(ctx.render)
    if (status == 404) {
        // ctx.body = "后端启动成功，但是没有该请求"
        await ctx.render('./404')
    }
    await next()
})

app.use(router.routes())

app.listen(3456, () => {
    console.log("http://127.0.0.1:3456")
})

// 接口限流   
const num = 0
// 访问一次 num + 1
// 五秒钟 >= 10次   再添加中间件  网络故障，稍后重试



// 1E    2000W



// 网站	网站2007C	22570100259	陈欣宇
// 2	网站	网站2007C	22570100003	赵岩
// 3	网站	网站2007C	18382100206	陈尤惠 